package com.atguigu.boot_redis03;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 *
 *
 * 6、整合 reids
 *  1、 引入 data-redis-starter
 *  2、简单配置 redis的 host信息
 *  3、使用Springboot自动配置好的 StringRedisTemplate来操作redis
 *  redis -> map 存放数据key 数据value
 *
 *  7、整合redisson作为分布式锁框架
 *      1、引入依赖
 *          <dependency>
 *           <groupId>org.redisson</groupId>
 *           <artifactId>redisson</artifactId>
 *           <version>3.12.0</version>
 *          </dependency>
 *     2、配置redisson
 *          MyRedissonConfig给容器配一个RedissonClient实例即可
 *     3、使用
 *      参照文档做
 *
 *  8、整合SpringCache简化缓存开发
 *      1、引入依赖
 *          spring-boot-starter-cache
 *      2、写配置
 *          1、自动配置了那些
 *              CacheAutoConfiguration会导入 RedisCacheConfiguration
 *              自动配置好了缓存管理器，RedisCacheManager
 *          2、配置使用redis作为缓存
 *          Spring.cache.type=redis
 *       3、测试使用缓存
 *         @Cacheable: Triggers cache population:触发将数据保存到缓存的操作
 * @CacheEvict: Triggers cache eviction: 触发将数据从缓存删除的操作
 * @CachePut: Updates the cache without interfering with the method execution:不影响方法执行更新缓存
 * @Caching: Regroups multiple cache operations to be applied on a method:组合以上多个操作
 * @CacheConfig: Shares some common cache-related settings at class-level:在类级别共享缓存的相同配置
 *          1、开启缓存功能
 *          2、只需要使用注解就能完成缓存操作
 *
 *       4、原理
 *       CacheAutoConfiguration ->RedisCacheConfiguration ->
 *       自动配置了 RedisCacheManager ->初始化所有的缓存 -> 每个缓存决定使用什么配置
 *       ->如果redisCacheConfiguration有就用已有的，没有就用默认的
 *       ->想改缓存的配置，只需要把容器中放一个 RedisCacheConfiguration 即可
 *       ->就会应用到当前 RedisCacheManager管理所有缓存分区中
 */

@SpringBootApplication
public class BootRedis03Application {

    public static void main(String[] args) {
        SpringApplication.run(BootRedis03Application.class, args);
    }

}
